#ifndef _BASE_D3D_H_
#define _BASE_D3D_H_

// include the basic windows header files and the Direct3D header file
#include <windows.h>
#include <windowsx.h>
#include <d3d9.h>
#include <d3dx9.h>

#include "AnimatedSprite.h"
#include "Sprite.h"
#include "Text.h"
#include "BasicModel.h"
#include "Camera.h"

#pragma once
#pragma comment (lib, "d3d9.lib")
#pragma comment (lib, "d3dx9.lib")

class VBaseD3D
{
public:
	VBaseD3D(void);
	virtual ~VBaseD3D(void);

	// global declarations
	LPDIRECT3D9 d3d;    // the pointer to our Direct3D interface
	LPDIRECT3DDEVICE9 d3ddev;    // the pointer to the device class
	LPD3DXSPRITE d3dspt;    // the pointer to our Direct3D Sprite interface

	VBasicModel* basicModel;
	// sprite declarations
	VSprite* sprite;    // the pointer to the sprite
	VAnimatedSprite* animation;
	VText* text;		// the pointer to the text
	VCamera* camera;


	// function prototypes
	void InitD3D(); // sets up and initializes Direct3D
	void RenderFrame(void); // renders a single frame
	void CheckInput(RAWINPUT rInput); //Check input

};

#endif